#include "event_loop.hh"
#include "../time_util.hh"

using namespace kratos::corelib;

namespace kratos {
namespace network {

EventLoopManager::~EventLoopManager() {
}

void EventLoopManager::add(EventLoopBase * eventLoop) {
    eventLoopList_.push_back(eventLoop);
}

void EventLoopManager::remove(EventLoopBase* eventLoop) {
    auto it = std::find(eventLoopList_.begin(), eventLoopList_.end(), eventLoop);
    if (it != eventLoopList_.end()) {
        eventLoopList_.erase(it);
    }
}

void EventLoopManager::update() {
    auto million = TimeUtil::getMillionSecondsTimestampOS();
    for (auto eventLoop : eventLoopList_) {
        eventLoop->update(million);
    }
}

}
}

